package main

import "fmt"

func main() {
	//信道也有容量和长度。它和数组的容量、长度机制，很类似。
	pipline := make(chan int, 10)
	fmt.Printf("信道可以缓冲 %d 个数据\n", cap(pipline))
	pipline <- 1
	pipline <- 2
	fmt.Printf("信道中当前有 %d 个数据", len(pipline))

	//无缓冲信道。信道里无法存储数据，这意味着，接收端必须先于发送端准备好，以确保你发送完数据后，有人立马接收数据，否则发送端就会造成阻塞
	//原因很简单，信道中既然无法存储数据。也就是说发送端和接收端是同步运行的。
	p1 := make(chan int)
	close(p1)
}
